package com.yellowcong.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;

/**
 * 创建日期:2018年3月16日 <br/>
 * 创建用户:yellowcong <br/>
 * 功能描述:
 */
@Service
public class HelloService {
	@Autowired
	RestTemplate restTemplate;

	/**
	 * 创建日期:2018年3月16日<br/>
	 * 创建用户:yellowcong<br/>
	 * 功能描述:通过rest的方式来调用模板
	 * @HystrixCommand 表示当熔断的情况，访问 error这个界面
	 * @param name
	 * @return
	 */
	@HystrixCommand(fallbackMethod = "error")
	public String sayHi(String name) {
		//可以看到执行的路径直接是SERVICE-HI ，在ribbon中，在ribbon中它会根据服务名来选择具体的服务实例，根据服务实例在请求的时候会用具体的url替换掉服务名
		return restTemplate.getForObject("http://SERVICE-CLIENT/hi/" + name, String.class);
	}
	
	//这个error是上面fallbackMethod 熔断后，回调方法
	public String error(String name){
		return name+" has error ,404";
	}
}
